#!/bin/sh

# 工作路径
g_workPath=$(cd `dirname \$0`; pwd -P)
cd $g_workPath

. $g_workPath/script/func.sh
. $g_workPath/.env

help() {
	cat << EOF
用法: ./ctrl [选项]
可用选项:
    init            初始化容器部署文件(端口转发), 没有执行 private 之前
    init private    初始化容器部署文件(nginx 代理)
    init public     还原容器部署文件为(端口转发)
    save            备份容器的数据卷(备份在 backup/<数据卷名称>.tar.gz)
    save <备份名称>  备份容器的数据卷(备份在 backup/<备份名称>.tar.gz)
    load            还原备份容器的数据卷(备份在 backup/<数据卷名称>.tar.gz)
    load <备份名称>  还原备份容器的数据卷(备份在 backup/<备份名称>.tar.gz)
    sql             连接 postgres, 进行 sql 指令
EOF
}

init() {
	# 创建卷
	echo "----- create volume ------"
	mkVolume "vol-postgres"
}

sql() {
	local sql="psql -U postgres"

	docker compose exec -it postgres /bin/sh -c "$sql"
}

case $1 in
	init)
		. ./script/init.sh "$2"
		init
		;;
	save)
		. ./script/save.sh vol-postgres "$2"
		;;
	load)
		. ./script/load.sh vol-postgres "$2"
		;;
	sql)
		sql
		;;
	*)
		help
		;;
esac	
